package client;

import adapter.duck.Duck;
import adapter.duck.TurkeyObjectAdapter;
import adapter.duck.WildTurkey;
import adapter.turkey.MallardDuck;
import adapter.turkey.MallardDuckClassAdapter;
import adapter.turkey.Turkey;

public class ClientA {

	public static void main(String[] args){
		Duck aDuck = new MallardDuck();
		aDuck.quack();
		aDuck.fly();
		
		Turkey aTurkey = new WildTurkey();
		aTurkey.gobble();
		aTurkey.fly();
		
		//this is the real client of the adapter pattern
		Duck bDuck = new TurkeyObjectAdapter(aTurkey);
		bDuck.quack();
		bDuck.fly();
		
		//client of another adapter pattern
		Turkey bTurkey = new MallardDuckClassAdapter();
		
		//object adapter: change turkey to duck
		//target: Duck
		//adapter : TurkeyObjectAdapter
		//adaptee: Turkey
	}
}
